گیت و گیتهاب سیستمهای کنترل نسخهی رایج بین توسعهدهندگان هستند که برای پیشه با آنها باید پیش درآمد با مفاهیم بنیادین این سیستمها آشنا شوید.
اگر بهعنوان کاربر اندروید کمینه یک بار سراغ رام کاستوم رفته باشید، محال است نام گیتهاب (Github) را ندیده باشید. کم و بیش تمام توسعهدهندگان اندروید از این سرویس برای انتشار منابع پروژههای خویش استفاده میکنند؛ ولی بسیاری از کاربران در مواجهه با گیتهاب، بخشها و واژگان آن سردرگم میشوند. در این مقاله به چیستی گیت، گیتهاب و نحوهی کار با آنها میپردازیم.
اسم گیتهاب از دو تقسیم گیت و هاب ساختن شده است. در پایین هرکدام را بهصورت جداگانه رسیدگی میکنیم.
گیت در گیتهاب
برای درک گیتهاب، آغاز باید با گیت آشنا شویم. گیت یک سیستم مهار نسخهی متن باز است که بدست خالق لینوکس، لینوس تروالدز، ساخته شد. گیت مشابه دیگر سیستمهای کنترل نسخه از قبیل سابورژن، CVS و مرکوریال است؛ اما اساسا سیستم کنترل نسخه چیست؟ وقتی توسعهدهندگان چیز جدیدی مثل یک اپلیکیشن خلق میکنند، مدام تغییراتی در کدهای آن میدهند لغایت نخستین نسخهی رسمی و غیر بتا آمادهی انتشار شود. این روند در بهروزرسانی برای نسخههای بعدی نیز پیوسته دارد.
سیستمهای کنترل نسخه دگرگونی ها و بازنگریهای توسعهدهندگان را در یک انبار- انباشتگاه مرکزی اندوخته میکنند. با این شغل مشارکت بین توسعهدهندگان راحت میشود؛ به این شکل که هر توسعهدهنده میتواند نسخهی جدید را دانلود کند، دگرگونی ها را در آن اعمال و سپس آپلود کند. کلیهی توسعهدهندگان قادر به مشاهدهی تغییرات جدید، دانلود آنها و مشارکت در پروژه خواهند بود.
همچنین، کسانی که نقشی در پروژه ندارند، میتوانند فایلهای آن را دانلود و کاربرد کنند. کاربران حرفهای لینوکس احتمالا با این روند آشنایی کامل دارند؛ چرا که استفاده از گیت، سابورژن و سرویسهای همانند از ملزومات کامپایل کردن یک برنامه از سورسکد آن است.
هاب در گیتهاب، سیستم مهار نسخهای است که توسط اکثر توسعهدهندگان ترجیح دیتا میشود؛ زیرا نسبت به سایر سیستمها برتریهایی دارد. مثلا در ذخیرهی تغییرات فایلها بهتر عمل میکند. در بخشهای بعدی این مقاله به نحوهی شغل با گیت خواهیم پرداخت.
در دنیای رایانه، هاب به تجهیزات سختافزاری گفته میشود که متعلق به اشتراکگذاری شبکه با گجتهای گوناگون استفاده میشود و برآیند اینکه هاب به نوعی شبکه را گسترش میدهد. هاب در گیتهاب نیز چنین مفهومی دارد. توسعهدهندگان پروژههای خویش را در گیتهاب اندوخته میکنند و از این روش به شبکهی عظیم توسعهدهندگان گیتی وصل میشوند. در گیتهاب این امکان وجود دارد که پروژهای را از مخزن توسعهدهنده به مخزن خویش کپی و در آن تغییرات اعمال کنید و سپس درخواست اعمال دگرگونی ها را به صاحب پروژه بفرستید تا در پروژهی اصلی اعمال کند. امکان پرسش و پذیرش نیز در این شبکهی گیت فراهم است.
حالا که با مفاهیم گیت و گیتهاب آشنا شدیم به نحوهی پیشه با این سرویسها میپردازیم.
آموزش شغل با گیت
نیازهای بنیادی
قبل از هرچیز لازم است مواردی را نصب کنید. برای اینکار نسخهی متناسب با سیستمعامل خویش را از اینجا دانلود و نصب کنید. اگر از لینوکس استفاده میکنید، از طریق پکیج منیجر نیز میتوانید اقدام کنید.
در مرحلهی بعد، از آنجایی که در روند آموزش، یک مخزن دربرگیرنده یک کد و یک README خواهیم ساخت، یک دایرکتوری برای آن در نظر بگیرید.
پس از آن، به عملیات معمولی همانند init، کلون، کامیت و diff میپردازیم. البته، عملیات پیشرفتهتری نیز هستی دارد که در مراحل اولیه نیازی به آنها نخواهید داشت.
راهاندازی یک مخزن (Repository)
قبل از آغاز شغل با گیت، باید یک انبار- انباشتگاه پروژه راهاندازی کنید لغایت به کمک گیت آن را مدیریت کنید. پایانه را مفتوح کنید و در دایرکتوری پروژهی خود پروانه . git init را وارد کنید.
با این شغل یک دایرکتوری مخفی با اسم git. در دایرکتوری پروژهی شما ساخته خواهد شد. این دایرکتوری همان مسیری است که گیت دیتابیس و تنظیمات خود را در آن ذخیره میکند الی دگرگونی ها پروژهی شما را پیگیری کند.
کلون یا کپی کردن یک مخزن
راه دیگری برای دسترسی به اندوختگاه هستی دارد که به کلونینگ نامی است. درست همانند بررسی مخزن در دیگر سیستمها، اجرای کد git clone <repository URL> یک کپی کامل از اندوختگاه باره نظر به سیستم شما منتقل خواهد کرد. سپس، میتوانید دگرگونی ها مد نظر را در آن اعمال کنید. روند اعمال تغییرات ساخت تغییرات، اعمال زودگذر آنها بدون وارد کردن در اندوختگاه اصلی (staging)، اعمال تغییر در انبار- انباشتگاه یا کامیت (commit) را شامل میشود.
افزودن فایل جدید
در این مرحله میتوان از زبانهای برنامهنویسی مختلف مشابه پایتون، روبی، Go یا هر زبان دیگری استفاده کرد. ما در این آموزش از زبان php که معمولتر است کاربرد میکنیم. فایلی به اسم index.php را در دایرکتوری خویش برپایی و کد زیر را در آن وارد کنید.
;?php print "Hello World";
بعد از ذخیرهی فایل، اجازه git status را از ترمینال اجرا کنید. این اجازه وضعیت حاضر انبار- انباشتگاه پیشه شما را نشان میدهد. نتیجهی به نمایش درآمده باید مشابه تصویر ذیل باشد که در آن index.php بهعنوان یک فایل untracked یا بررسینشده لیست شده است.
حالا شیوه پیشه با چند فایل بدون اعمال تغییرات در انبار- انباشتگاه را بررسی میکنیم. برای اینکار یک فایل دوم به نام README.md بسازید. در این فایل جزئیاتی مانند اسم پروژه، اسم و نشانی ایمیل خود را وارد کنید. فرمان git status را مجددا اجرا کنید. خواهید دید که اینبار دو فایل بهعنوان بررسینشده لیست شدهاند.
حالا میخواهیم index.php را بهاصطلاح استیج (stage) کنیم. فایلی که استیج میشود؛ یعنی دگرگونی ها آن سپریدن گرفته اما هنوز در انبار- انباشتگاه اصلی اعمال نشده است. برای اینکار دستور git add index.php را وارد کنید. حالا، پروانه چگونگی گیت (git status) را مجددا اجرا کنید. خواهید دیدن که index.php بهعنوان فایلی جدید در بخش تغییرات در انتظار اعمال (changes to be commited) فهرست شده است و README.md در همان بخش Untracked files قرار دارد.
تنظیمات
در این مرحله همهچیز آمادهی اعمال تغییرات یا commit است؛ ولی قبل از اینکار باید با تنظیمات ویرایشگر که گیت اثناء نگارش پیامهای کامیت مورد کاربرد قرار میدهد آشنا شوید.
اگر از لینوکس کاربرد میکنید گیت بهطور پیشفرض، از برنامههایی مثل pico، vi، vim یا emacs بهرهگیری خواهد کرد. اگر با این برنامهها آشنایی ندارید، ممکن است بخواهید آنها را با نرمافزاری مشابه Notepad، TextEdit یا Gedit عوض کنید. برای اینکار فرمان ذیل را از پایانه اجرا کنید:
git config --global core.editor <your app's name
در قسمت فرجام کد به جای your app's name اسم نرمافزار باره عقیده خویش را وارد کنید.
تنظیمات دیگری همانند تغییر اسم و ایمیل و چگونگی نمایش پیام کامیت نیز قابل اتمام است. ما در این تعلیم از vim بهعنوان ادیتور استفاده میکنیم؛ اما شما میتوانید برگزیدن متفاوت خود را داشته باشید.
اعمال نخستین تغییر
کامیت در گیت همانندگی بسیار زیادی با کامیت در سایر سیستمهای مهار نسخه مانند سابورژن دارد. روند پیشه به این شکل است که پیشه را پیش درآمد میکنید و پیامی جهت توضیح اینکه انگیزه تغییر اتمام گرفته چیست وارد میکنید و فایل تغییر مییابد. پس پروانه git commit را اجرا کنید. با این کار ویرایشگر بهصورت اتوماتیک مفتوح میشود و الگوی ذیل را نمایش میدهد.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
#
# Initial commit
#
# Changes to be committed:
# new file: index.php
#
# Untracked files:
# README.md
#
با رسیدگی مداوم چگونگی تغییرات اعمالشده توسط فرمان git status از شرایط انبار- انباشتگاه خویش آگاهی پیدا خواهید کرد. با اینکار همواره خواهید دانست چه تغییری را اعمال کرده و چه تغییری را هنوز اعمال نکردهاید. یک پیام کامیت خوب باید دربرگیرنده دو دسته باشد؛ نخست اینکه اختصار و در کران ۷۲ کاراکتر باشد و بهطور چکیده تغییر اعمالشده را اعلام کند. دیگر اینکه حائز توضیحی بلندتر باشد که بهطور مجزا در سطری سایر جزئیات تغییر اعمالشده را روشنگری دهد. البته مورد دوم اختیاری است و الزامی برای نگارش آن هستی ندارد.
ما در این مرحله نیاز به نگارش توضیح پیچیدهای نداریم؛ چرا که فقط یک فایل را به انبار- انباشتگاه اضافه کردهایم؛ ولی چنانچه تغییری که اعمال میکنید دارای الگوریتمهای پیچیدهای باشد، لازم است توضیحاتی در این بخش برای مطالعهی دیگر توسعهدهندگان بنویسید و آنها را از چرایی اعمال این تغییر مستحضر سازید. بنابراین، پیام سادهی ذیل را در ویرایشگر وارد و اندوخته کنید و بیرون شوید.
“Adding the core script file to the repository”
حالا که تغییرات اعمال شدند. وضعیت گیت را مجددا بررسی کنید. خواهید رویت که REDME.md کماکان در تقدیر untracked قرار دارد.
نکات مهم دربارهی استیجینگ یا ایندکس
- اگر مبتدی هستید، یکتا از گیجکنندهترین قسمتها برای شما محیط استیجینگ و رابطهی آن با کامیت خواهد بود.
- کامیت به راستی ثبت سوابق تغییرات فایلها نسبت به آخرین تغییر اعمالشده است. یعنی شما تغییری در اندوختگاه خود اعمال میکنید و به کیت میگویید آن فایلها را در یک کامیت ثبت سابقه کند.
- کامیتها ماهیت پروژهی شما را در مراحل گوناگون حفظ میکنند تا هر موعد که بیچارگی شد بتوانید به مرحلهی پیش برگردید.
- اما چطور به گیت میگویید کدام فایلها را در کامیت پیمان دهد؟ اینجا است که استیجینگ یا ایندکس ایفای نقش میکند. برای اضافه کردن یک فایل در کامیت، آغاز باید آن را به محیط استیجینگ اضافه کنید. برای انجام این پیشه میتوانید از پروانه <git add <filename کاربرد کنید. بعد از اینکه که فایلهای مورد نظر خود را با این دستور به محیط استیجینگ اضافه کردید، میتوانید با دستور git commit آنها را بهعنوان کامیت در انبار- انباشتگاه اعمال کنید.
برنچینگ یا شاخهبندی
تا اینجا با نحوهی شروع کار و اعمال تغییرات و رسیدگی آنها آشنا شدیم. حالا با مفهوم پیشرفتهتری به نام شاخهبندی آشنا میشویم. وقتی بهطور تیمی روی یک نرمافزار کار میکنیم. آزمون و خطاهای هر برنامهنویس روی شاخهی اصلی کدهای یک برنامه شدنی است دردسرساز شود. گیت این اجازه را به شما میدهد که شاخهی اختصاصی خود را داشته باشید. در این حالت، وقتی روی ساخت یک ویژگی پیشه میکنید، آزمایشهای شما صدمهای به شاخهی اصلی نمیزند و میتوانید وقتی به نتیجه رسیدید، مجموعهی تغییرات اعمالشده را با شاخهی اصلی تلفیق یا merge کنید.
تا این تقسیم از تعلیم در حال کار روی شاخهی اصلی یا مستر برنچ بودهایم. شاخهی اصلی در واقع همان شاخهای است که بهصورت پیشفرض راهاندازی گیت با آن آغاز میشود. الان هدف داریم یک شاخه به اسم development (به معنی توسعه) راهاندازی کنیم. از ترمینال فرمان git checkout -b develop را اجرا کنید لغایت شاخهای به اسم develop ساخته شود. اجرای این اجازه علاوه بر ساخت شاخهی یادشده بررسی آن را نیز اعمال میکند. این شاخه در آغاز یک کپی از شاخهی اصلی است. یعنی اگر اجازه git status را اجرا کنید همان دو تغییر اعمالشده در README.md را نگریستن خواهید کرد. اکنون فرض کنید میخواهیم همین دو کامیت را در شاخهی اصلی تلفیق کنیم.
برای سپریدن اینکار پیش درآمد باید مشخص کنید که قصد تلفیق دگرگونی ها موجود در کدام شاخه را دارید.
پس، دستور git checkout master را اجرا کنید. اکنون که باید تغییرات را از شاخهای که در حال کار روی آن بودهاید در این شاخه تلفیق کنید. برای اینکار پروانه git merge develop را اجرا کنید.
برای آموزش بشتر و یا آموزش بیشتر نرم افزار ها به سایت سلام تک مراجعه کنید.
آی تی برای همه ...
ما را در سایت آی تی برای همه دنبال می کنید
برچسب : اپلیکیشن گیت کار,پروژه های گیت هاب,آموزش گیت هاب جادی, نویسنده : اسحان منطقی it-baraye-hame بازدید : 308 تاريخ : يکشنبه 30 تير 1398 ساعت: 22:15